/*
 * 页面右下角弹出类似QQ或MSN的消息提示 
 * var MSG = new CPopupMessage("aa",200,120,"短消息提示：","您有1封消息","今天请我吃饭哈");
 * MSG1.rect(null,null,null,screen.height-50); 
 * MSG1.speed = 10; 
 * MSG1.step = 5;
 * MSG.show();
 * 暂时不支持跨浏览器使用：createPopup()为IE专有
 */
if (!window.Class) {
	window.Class = {
		create : function() {
			return function() {
				this.initialize.apply(this, arguments);
			}
		}
	}
}

var CPopupMessage = Class.create();
CPopupMessage.prototype = {
	initialize : function(id, width, height, caption, title, message, target, action) {
		this.id = id;
    	this.title = title;
	    this.caption = caption;
	    this.message = message;
	    this.target = target;
	    this.action = action;
	    this.width = width ? width : 200;
	    this.height = height ? height : 120;
	    this.timeout = 150;
	    this.speed = 20;
	    this.step = 1;
	    this.right = screen.width - 1;
	    this.bottom = screen.height;
	    this.left    = this.right - this.width;
	    this.top    = this.bottom - this.height;
	    this.timer    = 0;
	    this.pause    = false;
	    this.close    = false;
	    this.autoHide    = true;
	},
	
	hide : function() {	//隐藏消息方法
		if(this.onunload()) {
        	var offset  = this.height > this.bottom - this.top ? this.height : this.bottom - this.top;
        	var me  = this;
        	if(this.timer > 0) {
            	window.clearInterval(me.timer);
        	}
	        var fun = function() {
	            if(false == me.pause || me.close) {
	                var x  = me.left; 
	                var y  = 0;
	                var width = me.width;
	                var height = 0;
	                if(me.offset > 0) {
	                    height = me.offset;
	                }

	                y  = me.bottom - height;

	                if(y >= me.bottom) {
	                    window.clearInterval(me.timer);
	                    me.Pop.hide();
	                } else {
	                    me.offset = me.offset - me.step;
	                }
	                me.Pop.show(x, y, width, height);
	            }
	        };
	        this.timer = window.setInterval(fun, this.speed);
	    }
	},
	onunload : function() {	//消息卸载事件，可以重写
		return true;
	},
	oncommand : function(url) {	//消息命令事件，要实现自己的连接，请重写它
		this.hide();
		window.open(url);
	},
	show : function() {	//消息显示方法
		var oPopup = window.createPopup(); //IE5.5+
	    this.Pop = oPopup;
	    var w = this.width;
	    var h = this.height;
	    var str = "<div style='border-right: #455690 1px solid; border-top: #a6b4cf 1px solid; z-index: 99999; left: 0px; border-left: #a6b4cf 1px solid; width: " + w + "px; border-bottom: #455690 1px solid; position: absolute; top: 0px; height: " + h + "px; background-color: #c9d3f3'>";
	        str += "<table style='BORDER-TOP: #ffffff 1px solid; BORDER-LEFT: #ffffff 1px solid' cellSpacing=0 cellPadding=0 width='100%' bgColor=#cfdef4 border=0>";
	        str += "<tr>";
	        str += "<td style='font-size: 12px;color: #0f2c8c' width='30' height='24'></td>";
	        str += "<td style='padding-left: 4px; font-weight: normal; font-size: 12px; color: #1f336b; padding-top: 4px' vAlign='center' width='100%'>" + this.caption + "</td>";
	        str += "<td style='padding-right: 2px; PADDING-TOP: 2px' vAlign=center align=right width=19>";
	        str += "<span title='关闭' style='font-weight: bold; font-size: 12px; cursor: hand; color: red; margin-right: 4px' id='btSysClose' >×</span></td>";
	        str += "</tr>";
	        str += "<tr>";
	        str += "<td style='padding-right: 1px;padding-bottom: 1px' colSpan=3 height=" + (h-28) + ">";
	        str += "<div style='border-right: #b9c9ef 1px solid; padding-right: 8px; border-top: #728eb8 1px solid; padding-left: 8px; font-size: 12px; padding-bottom: 8px; border-left: #728eb8 1px solid; width: 100%; color: #1f336b; padding-top: 8px; border-bottom: #b9c9ef 1px solid; height: 100%'>" + this.title + "<br><br>";
	        str += "<div style='word-break: break-all' align='left'><a href='javascript:void(0)' hidefocus=false id='btCommand'><font color='#ff0000'>" + this.message + "</font></a>fghfghfghghghgh<A href='http://www.sohu.com' hidefocus=false id='ommand'><font color='#ff0000'>dfgdfgfg</font></a></div>";
	        str += "</div>";
	        str += "</td>";
	        str += "</tr>";
	        str += "</table>";
	        str += "</div>";

	    oPopup.document.body.innerHTML = str;
	    this.offset  = 0;
	    var me  = this;
	    oPopup.document.body.onmouseover = function() { me.pause = true; }
	    oPopup.document.body.onmouseout = function() { me.pause = false; }

	    var fun = function() {
	        var x  = me.left;
	        var y  = 0;
	        var width = me.width;
	        var height = me.height;

			if(me.offset > me.height) {
	        	height = me.height;
	        } else {
	        	height = me.offset;
			}
	        y  = me.bottom - me.offset;
	        if (y <= me.top) {
				me.timeout--;
	            if (me.timeout == 0) {
					window.clearInterval(me.timer);
	                if(me.autoHide) {
	                    me.hide();
	                }
	            }
	        } else {
				me.offset = me.offset + me.step;
			}
			me.Pop.show(x,y,width,height);
		}
	    this.timer = window.setInterval(fun, this.speed);
	    var btClose = oPopup.document.getElementById("btSysClose");
	    btClose.onclick = function() {
	        me.close = true;
	        me.hide();
	    }
		var btCommand = oPopup.document.getElementById("btCommand");
		btCommand.onclick = function() {
			me.oncommand();
		}
		var ommand = oPopup.document.getElementById("ommand");
		ommand.onclick = function() {
		    //this.close = true;
		    me.hide();
			window.open(ommand.href);
		}
	},
	speed : function(s) {	//设置速度方法
		var t = 20;
		try {
			t = praseInt(s);
		} catch(e) {
			;
		}
		this.speed = t;
	},
	step : function(s) {	//设置步长方法
		var t = 1;
		try {
			t = praseInt(s);
		} catch(e) {
			;
		}
		this.step = t;
	},
	rect : function(left, right, top, bottom) {
		try {
			this.left = left != null ? left : this.right - this.width;
			this.right = right != null ? right : this.left + this.width;
			this.bottom = bottom != null ? (bottom > screen.height ? screen.height : bottom) : screen.height;
			this.top = top != null ? top : this.bottom - this.height;
		} catch(e) {
			;
		}
	}
}